<div>
    <div class="accordion">
        <div class="accordion-group">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Summary, 概览
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.id">
                            <td>vhost.id</td>
                            <td><a href="#/vhosts/{{vhost.id}}">{{vhost.id}}</a></td>
                            <td>Vhost的统计信息，必须有访问时才会有数据.</td>
                        </tr>
                        <tr ng-show="!vhost.id">
                            <td>vhost.id</td>
                            <td>{{vhost.id}}</td>
                            <td>该Vhost没有任何访问客户端，无统计信息.</td>
                        </tr>
                        <tr ng-show="vhost.enabled != undefined">
                            <td>vhost.enabled</td>
                            <td>{{vhost.enabled| sc_filter_enabled}}</td>
                            <td>Vhost是否启用。默认: {{true| sc_filter_enabled}}</td>
                        </tr>
                        <tr>
                            <td>vhost.name</td>
                            <td>{{vhost.name}}</td>
                            <td>Vhost的名称，即客户的服务域名，或者虚拟主机名，服务器上不能重名。</td>
                        </tr>
                        <tr ng-show="vhost.chunk_size">
                            <td>vhost.chunk_size</td>
                            <td>{{vhost.chunk_size}}</td>
                            <td>RTMP Chunk大小，即分包大小。默认: 全局的chunk_size</td>
                        </tr>
                        <tr ng-show="vhost.min_latency">
                            <td>vhost.min_latency</td>
                            <td>{{vhost.min_latency| sc_filter_enabled}}</td>
                            <td>是否开启最小延迟配置，将设置vhost.publish.mr=off。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.tcp_nodelay">
                            <td>vhost.tcp_nodelay</td>
                            <td>{{vhost.tcp_nodelay| sc_filter_enabled}}</td>
                            <td>是否设置TCP_NODELAY，将包及时发送到客户端，但严重影响性能。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.cluster">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Cluster, 流集群设置
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.cluster.mode">
                            <td>vhost.cluster.mode</td>
                            <td>{{vhost.cluster.mode}}</td>
                            <td>RTMP/FLV流集群模式的类型，local为源站，remote为边缘。默认: local</td>
                        </tr>
                        <tr ng-show="vhost.cluster.origin">
                            <td>vhost.cluster.origin</td>
                            <td>{{vhost.cluster.origin}}</td>
                            <td>边缘模式时，回源的源站服务器地址。</td>
                        </tr>
                        <tr ng-show="vhost.cluster.token_traverse != undefined">
                            <td>vhost.cluster.token_traverse</td>
                            <td>{{vhost.cluster.token_traverse| sc_filter_enabled}}</td>
                            <td>RTMP Edge防盗链，将连接信息传递给Origin源站验证。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.cluster.vhost">
                            <td>vhost.cluster.vhost</td>
                            <td>{{vhost.cluster.vhost}}</td>
                            <td>边缘模式时，回源的vhost，可以改变vhost回源。</td>
                        </tr>
                        <tr ng-show="vhost.cluster.debug_srs_upnode != undefined">
                            <td>vhost.cluster.debug_srs_upnode</td>
                            <td>{{vhost.cluster.debug_srs_upnode| sc_filter_enabled}}</td>
                            <td>连接上层节点时发送本节点信息，影响所有连接服务器的地方如回源。默认: {{true| sc_filter_enabled}}</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.forward">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Forward, 转发设置
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.forward.enabled != undefined">
                            <td>vhost.forward.enabled</td>
                            <td>{{vhost.forward.enabled| sc_filter_enabled}}</td>
                            <td>是否开启Forward。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.forward.destination">
                            <td>vhost.forward.destination</td>
                            <td>{{vhost.forward.destination}}</td>
                            <td>转发的服务器列表，同时转发给这些服务器。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.play">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Play, 播放客户端设置
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.play.gop_cache != undefined">
                            <td>vhost.play.gop_cache</td>
                            <td>{{vhost.play.gop_cache| sc_filter_enabled}}</td>
                            <td>是否开启GopCache，可快速启动播放。默认: {{true| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.play.queue_length">
                            <td>vhost.play.queue_length</td>
                            <td>{{vhost.play.queue_length}}</td>
                            <td>秒。队列的最大长度，超过后清空队列。默认: 30</td>
                        </tr>
                        <tr ng-show="vhost.play.time_jitter">
                            <td>vhost.play.time_jitter</td>
                            <td>{{vhost.play.time_jitter}}</td>
                            <td>时间戳校正算法。full: 完全校正；zero: 零校正；off: 关闭。默认: full</td>
                        </tr>
                        <tr ng-show="vhost.play.mix_correct != undefined">
                            <td>vhost.play.mix_correct</td>
                            <td>{{vhost.play.mix_correct| sc_filter_enabled}}</td>
                            <td>是否开启MixCorrect，混合单增校正算法。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.play.atc != undefined">
                            <td>vhost.play.atc</td>
                            <td>{{vhost.play.atc| sc_filter_enabled}}</td>
                            <td>是否开启ATC，绝对时间戳。启用后将设置vhost.play.time_jitter为off。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.play.atc_auto != undefined">
                            <td>vhost.play.atc_auto</td>
                            <td>{{vhost.play.atc_auto| sc_filter_enabled}}</td>
                            <td>是否开启自动ATC。metadata中bravo_atc="true"时自动开启ATC。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.play.mw_latency">
                            <td>vhost.play.mw_latency</td>
                            <td>{{vhost.play.mw_latency}}</td>
                            <td>毫秒。合并写入延迟，同时将多少毫秒的包一次写入，writev高性能的关键配置。默认: 350</td>
                        </tr>
                        <tr ng-show="vhost.play.send_min_interval">
                            <td>vhost.play.send_min_interval</td>
                            <td>{{vhost.play.send_min_interval}}</td>
                            <td>毫秒。每个包发送的间隔。能控制发包间隔，但严重影响性能；0表示关闭。默认: 0</td>
                        </tr>
                        <tr ng-show="vhost.play.reduce_sequence_header != undefined">
                            <td>vhost.play.reduce_sequence_header</td>
                            <td>{{vhost.play.reduce_sequence_header| sc_filter_enabled}}</td>
                            <td>是否去掉重复的SequenceHeader，有些编码器不能接收重复的sps/pps。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.publish">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Publish, 推流客户端设置
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.publish.mr != undefined">
                            <td>vhost.publish.mr</td>
                            <td>{{vhost.publish.mr| sc_filter_enabled}}</td>
                            <td>是否开启合并读，推流客户端较多时能提高性能。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.publish.mr_latency">
                            <td>vhost.publish.mr_latency</td>
                            <td>{{vhost.publish.mr_latency}}</td>
                            <td>毫秒。合并读的延迟，即至少等一定毫秒才读包。默认: 350</td>
                        </tr>
                        <tr ng-show="vhost.publish.firstpkt_timeout">
                            <td>vhost.publish.firstpkt_timeout</td>
                            <td>{{vhost.publish.firstpkt_timeout}}</td>
                            <td>毫秒。发布客户端首包超时的时间。默认: 20000</td>
                        </tr>
                        <tr ng-show="vhost.publish.normal_timeout">
                            <td>vhost.publish.normal_timeout</td>
                            <td>{{vhost.publish.normal_timeout}}</td>
                            <td>毫秒。发布客户端非首包超时的时间。默认: 5000</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.refer || vhost.cluster">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Hotlink Denial, 防盗链设置
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.refer.enabled != undefined">
                            <td>vhost.refer.enabled</td>
                            <td>{{vhost.refer.enabled| sc_filter_enabled}}</td>
                            <td>是否开启Referer防盗链机制。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.refer.all">
                            <td>vhost.refer.all</td>
                            <td>{{vhost.refer.all}}</td>
                            <td>针对play和publish都有效的Referer设置。</td>
                        </tr>
                        <tr ng-show="vhost.refer.play">
                            <td>vhost.refer.play</td>
                            <td>{{vhost.refer.play}}</td>
                            <td>只针对play有效的Referer设置。</td>
                        </tr>
                        <tr ng-show="vhost.refer.publish">
                            <td>vhost.refer.publish</td>
                            <td>{{vhost.refer.publish}}</td>
                            <td>只针对publish有效的Referer设置。</td>
                        </tr>

                        <tr ng-show="vhost.cluster.token_traverse != undefined">
                            <td>vhost.cluster.token_traverse</td>
                            <td>{{vhost.cluster.token_traverse| sc_filter_enabled}}</td>
                            <td>RTMP Edge防盗链，将连接信息传递给Origin源站验证。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.bandcheck">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Bandcheck, 带宽测试
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.bandcheck.enabled != undefined">
                            <td>vhost.bandcheck.enabled</td>
                            <td>{{vhost.bandcheck.enabled| sc_filter_enabled}}</td>
                            <td>是否开启测速配置。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.bandcheck.key">
                            <td>vhost.bandcheck.key</td>
                            <td>{{vhost.bandcheck.key}}</td>
                            <td>带宽测速的Key，客户端必须指定合法的Key才能测速。</td>
                        </tr>
                        <tr ng-show="vhost.bandcheck.interval">
                            <td>vhost.bandcheck.interval</td>
                            <td>{{vhost.bandcheck.interval}}</td>
                            <td>秒。带宽测速的间隔，低于这个间隔不提供服务。默认: 30。</td>
                        </tr>
                        <tr ng-show="vhost.bandcheck.limit_kbps">
                            <td>vhost.bandcheck.limit_kbps</td>
                            <td>{{vhost.bandcheck.limit_kbps}}</td>
                            <td>Kbps。带宽测速的上限速度。默认: 1000。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.security">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Security, 安全设置
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.security.enabled != undefined">
                            <td>vhost.security.enabled</td>
                            <td>{{vhost.security.enabled| sc_filter_enabled}}</td>
                            <td>是否开启安全设置。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-repeat="allow in vhost.security.allows">
                            <td>vhost.security.{{allow.action}}</td>
                            <td>{{allow.action}} {{allow.method}} {{allow.entry}}</td>
                            <td>{{allow| sc_filter_security}}</td>
                        </tr>
                        <tr ng-repeat="deny in vhost.security.denies">
                            <td>vhost.security.{{deny.action}}</td>
                            <td>{{deny.action}} {{deny.method}} {{deny.entry}}</td>
                            <td>{{deny| sc_filter_security}}</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.http_static">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost HTTP Static, HTTP静态服务器
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.http_static.enabled != undefined">
                            <td>vhost.http_static.enabled</td>
                            <td>{{vhost.http_static.enabled| sc_filter_enabled}}</td>
                            <td>是否开启Vhost的HTTP静态配置。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.http_static.mount">
                            <td>vhost.http_static.mount</td>
                            <td>{{vhost.http_static.mount}}</td>
                            <td>Vhost特殊的挂载信息。默认: [vhost]/。</td>
                        </tr>
                        <tr ng-show="vhost.http_static.dir">
                            <td>vhost.http_static.dir</td>
                            <td>{{vhost.http_static.dir}}</td>
                            <td>Vhost的主目录。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.http_remux">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost HTTP Remux, HTTP流服务器
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.http_remux.enabled != undefined">
                            <td>vhost.http_remux.enabled</td>
                            <td>{{vhost.http_remux.enabled| sc_filter_enabled}}</td>
                            <td>是否开启Vhost的HTTP流服务器配置。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.http_remux.fast_cache">
                            <td>vhost.http_remux.fast_cache</td>
                            <td>{{vhost.http_remux.fast_cache}}</td>
                            <td>秒。音频流的预缓存时间，只对aac/mp3等纯音频流有效。默认: 30。</td>
                        </tr>
                        <tr ng-show="vhost.http_remux.mount">
                            <td>vhost.http_remux.mount</td>
                            <td>{{vhost.http_remux.mount}}</td>
                            <td>挂载点，即用户的访问路径。默认: [vhost]/[app]/[stream].flv。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.http_hooks">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost HTTP Callbacks/Hooks, HTTP回调
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.http_hooks.enabled != undefined">
                            <td>vhost.http_hooks.enabled</td>
                            <td>{{vhost.http_hooks.enabled| sc_filter_enabled}}</td>
                            <td>是否开启Vhost的HTTP回调配置。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_connect">
                            <td>vhost.http_hooks.on_connect</td>
                            <td><span title="{{vhost.http_hooks.on_connect}}">hooks</span></td>
                            <td>当RTMP客户端Connect时的回调，知道了tcUrl，但不知道Type和StreamName。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_close">
                            <td>vhost.http_hooks.on_close</td>
                            <td><span title="{{vhost.http_hooks.on_close}}">hooks</span></td>
                            <td>当RTMP客户端Close时的回调，即断开连接时。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_publish">
                            <td>vhost.http_hooks.on_publish</td>
                            <td><span title="{{vhost.http_hooks.on_publish}}">hooks</span></td>
                            <td>当RTMP客户端Publish时的回调，知道了类型和StreamName。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_unpublish">
                            <td>vhost.http_hooks.on_unpublish</td>
                            <td><span title="{{vhost.http_hooks.on_unpublish}}">hooks</span></td>
                            <td>当RTMP客户端UnPublish时的回调，即停止推流。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_play">
                            <td>vhost.http_hooks.on_play</td>
                            <td><span title="{{vhost.http_hooks.on_play}}">hooks</span></td>
                            <td>当RTMP客户端Play时的回调，知道了类型和StreamName。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_stop">
                            <td>vhost.http_hooks.on_stop</td>
                            <td><span title="{{vhost.http_hooks.on_stop}}">hooks</span></td>
                            <td>当RTMP客户端Stop时的回调，即停止播放时。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_dvr">
                            <td>vhost.http_hooks.on_dvr</td>
                            <td><span title="{{vhost.http_hooks.on_dvr}}">hooks</span></td>
                            <td>当服务器DVR关闭文件时的回调。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_hls">
                            <td>vhost.http_hooks.on_hls</td>
                            <td><span title="{{vhost.http_hooks.on_hls}}">hooks</span></td>
                            <td>当服务器HLS关闭TS切片文件时的回调，支持多个地址，通知系统HLS切片生成了。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_hls_notify">
                            <td>vhost.http_hooks.on_hls_notify</td>
                            <td><span title="{{vhost.http_hooks.on_hls_notify}}">hooks</span></td>
                            <td>当服务器HLS更新流信息(一般是关闭切片)，只支持一个地址，可用来访问CDN做预取。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.exec">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Exec, 执行外部程序
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.exec.enabled != undefined">
                            <td>vhost.exec.enabled</td>
                            <td>{{vhost.exec.enabled| sc_filter_enabled}}</td>
                            <td>是否开启Vhost的EXEC配置。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.exec.publish">
                            <td>vhost.exec.publish</td>
                            <td><span title="{{vhost.exec.publish}}">EXEC</span></td>
                            <td>发布流时的EXEC配置。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.hls || vhost.http_hooks">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost HLS, HLS流
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.hls.enabled != undefined">
                            <td>vhost.hls.enabled</td>
                            <td>{{vhost.hls.enabled| sc_filter_enabled}}</td>
                            <td>是否支持HLS输出。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_fragment">
                            <td>vhost.hls.hls_fragment</td>
                            <td>{{vhost.hls.hls_fragment}}</td>
                            <td>秒。HLS的TS切片的长度。默认: 10。</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_td_ratio">
                            <td>vhost.hls.hls_td_ratio</td>
                            <td>{{vhost.hls.hls_td_ratio}}</td>
                            <td>HLS的#EXT-X-TARGETDURATION的值，为hls_fragment的默认倍数。默认: 1.5。</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_aof_ratio">
                            <td>vhost.hls.hls_aof_ratio</td>
                            <td>{{vhost.hls.hls_aof_ratio}}</td>
                            <td>纯音频的溢出倍数，当TS切片超过溢出时长时就生成切片。默认: 2.0。</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_window">
                            <td>vhost.hls.hls_window</td>
                            <td>{{vhost.hls.hls_window}}</td>
                            <td>秒。HLS的TS切片的窗口，即m3u8中有多少个TS切片。默认: 60。</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_on_error">
                            <td>vhost.hls.hls_on_error</td>
                            <td>{{vhost.hls.hls_on_error}}</td>
                            <td>
                                错误时，ignore: 忽略并禁用HLS；disconnect: 断开推流连接；
                                continue: 继续再试。默认: ignore
                            </td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_path">
                            <td>vhost.hls.hls_path</td>
                            <td>{{vhost.hls.hls_path}}</td>
                            <td>HLS的存储目录。默认: ./objs/nginx/html。</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_m3u8_file">
                            <td>vhost.hls.hls_m3u8_file</td>
                            <td>{{vhost.hls.hls_m3u8_file}}</td>
                            <td>m3u8文件模板。默认: [app]/[stream].m3u8</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_ts_file">
                            <td>vhost.hls.hls_ts_file</td>
                            <td>{{vhost.hls.hls_ts_file}}</td>
                            <td>ts文件模板。默认: [app]/[stream]-[seq].ts</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_ts_floor != undefined">
                            <td>vhost.hls.hls_ts_floor</td>
                            <td>{{vhost.hls.hls_ts_floor| sc_filter_enabled}}</td>
                            <td>是否开启TS文件名递增算法。默认: {{false| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_entry_prefix">
                            <td>vhost.hls.hls_entry_prefix</td>
                            <td>{{vhost.hls.hls_entry_prefix}}</td>
                            <td>HLS的TS切片的前缀。</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_acodec">
                            <td>vhost.hls.hls_acodec</td>
                            <td>{{vhost.hls.hls_acodec}}</td>
                            <td>HLS默认的音频编码。默认: aac</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_vcodec">
                            <td>vhost.hls.hls_vcodec</td>
                            <td>{{vhost.hls.hls_vcodec}}</td>
                            <td>HLS默认的视频编码。默认: h264</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_cleanup != undefined">
                            <td>vhost.hls.hls_cleanup</td>
                            <td>{{vhost.hls.hls_cleanup| sc_filter_enabled}}</td>
                            <td>是否清理超过窗口的TS切片。默认: {{true| sc_filter_enabled}}</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_dispose != undefined">
                            <td>vhost.hls.hls_dispose</td>
                            <td>{{vhost.hls.hls_dispose}}</td>
                            <td>秒。HLS没有收到数据时清理的超时时间。0表示禁用。默认: 0</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_nb_notify">
                            <td>vhost.hls.hls_nb_notify</td>
                            <td>{{vhost.hls.hls_nb_notify}}</td>
                            <td>HLS请求on_hls_notify读取内容的最大长度。默认: 64</td>
                        </tr>
                        <tr ng-show="vhost.hls.hls_wait_keyframe != undefined">
                            <td>vhost.hls.hls_wait_keyframe</td>
                            <td>{{vhost.hls.hls_wait_keyframe| sc_filter_enabled}}</td>
                            <td>关闭TS切片时是否等待关键帧。默认: {{true| sc_filter_enabled}}</td>
                        </tr>

                        <tr ng-show="vhost.http_hooks.on_hls">
                            <td>vhost.http_hooks.on_hls</td>
                            <td><span title="{{vhost.http_hooks.on_hls}}">hooks</span></td>
                            <td>当服务器HLS关闭TS切片文件时的回调，支持多个地址，通知系统HLS切片生成了。</td>
                        </tr>
                        <tr ng-show="vhost.http_hooks.on_hls_notify">
                            <td>vhost.http_hooks.on_hls_notify</td>
                            <td><span title="{{vhost.http_hooks.on_hls_notify}}">hooks</span></td>
                            <td>当服务器HLS更新流信息(一般是关闭切片)，只支持一个地址，可用来访问CDN做预取。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.hds">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost HDS, HDS流
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.hds.enabled != undefined">
                            <td>vhost.hds.enabled</td>
                            <td>{{vhost.hds.enabled| sc_filter_enabled}}</td>
                            <td>是否分发HDS流。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.hds.hds_fragment">
                            <td>vhost.hds.hds_fragment</td>
                            <td>{{vhost.hds.hds_fragment}}</td>
                            <td>秒。HDS的f4v切片的长度。默认: 10。</td>
                        </tr>
                        <tr ng-show="vhost.hds.hds_window">
                            <td>vhost.hds.hds_window</td>
                            <td>{{vhost.hds.hds_window}}</td>
                            <td>秒。HDS的f4v切片的窗口，即f4m中有多少个f4v切片。默认: 60。</td>
                        </tr>
                        <tr ng-show="vhost.hds.hds_path">
                            <td>vhost.hds.hds_path</td>
                            <td>{{vhost.hds.hds_path}}</td>
                            <td>HDS的存储目录。默认: ./objs/nginx/html。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="vhost.dvr || vhost.http_hooks">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost DVR, 直播录制
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="vhost.dvr.enabled != undefined">
                            <td>vhost.dvr.enabled</td>
                            <td>{{vhost.dvr.enabled| sc_filter_enabled}}</td>
                            <td>是否开启直播录制。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.dvr.dvr_plan">
                            <td>vhost.dvr.dvr_plan</td>
                            <td>{{vhost.dvr.dvr_plan}}</td>
                            <td>录制计划，session: 按Session；segment: 分段；append: 一个文件。默认: session</td>
                        </tr>
                        <tr ng-show="vhost.dvr.dvr_apply">
                            <td>vhost.dvr.dvr_apply</td>
                            <td><span title="{{vhost.dvr.dvr_apply}}">Filters</span></td>
                            <td>录制应用的目标，all表示所有流，app/stream指定特定的流。默认: all</td>
                        </tr>
                        <tr ng-show="vhost.dvr.dvr_path">
                            <td>vhost.dvr.dvr_path</td>
                            <td><span title="{{vhost.dvr.dvr_path}}">PATH</span></td>
                            <td>录制文件的模板。默认: ./objs/nginx/html/[app]/[stream].[timestamp].flv</td>
                        </tr>
                        <tr ng-show="vhost.dvr.dvr_duration">
                            <td>vhost.dvr.dvr_duration</td>
                            <td>{{vhost.dvr.dvr_duration}}</td>
                            <td>秒。segment计划时，录制文件的时长。默认: 30</td>
                        </tr>
                        <tr ng-show="vhost.dvr.dvr_wait_keyframe != undefined">
                            <td>vhost.dvr.dvr_wait_keyframe</td>
                            <td>{{vhost.dvr.dvr_wait_keyframe| sc_filter_enabled}}</td>
                            <td>segment计划时，关闭文件时是否等待关键帧。默认: {{true| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="vhost.dvr.time_jitter">
                            <td>vhost.dvr.time_jitter</td>
                            <td>{{vhost.dvr.time_jitter}}</td>
                            <td>时间戳校正算法。full: 完全校正；zero: 零校正；off: 关闭。默认: full</td>
                        </tr>

                        <tr ng-show="vhost.http_hooks.on_dvr">
                            <td>vhost.http_hooks.on_dvr</td>
                            <td><span title="{{vhost.http_hooks.on_dvr}}">hooks</span></td>
                            <td>当服务器DVR关闭文件时的回调。</td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-repeat="ingest in vhost.ingests">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Ingest, 采集, id={{ingest.id}}
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="ingest.enabled != undefined">
                            <td>ingest.enabled</td>
                            <td>{{ingest.enabled| sc_filter_enabled}}</td>
                            <td>是否开启采集。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="ingest.input.type">
                            <td>ingest.input.type</td>
                            <td>{{ingest.input.type}}</td>
                            <td>采集的类型，file: 文件；stream: 流。默认: file</td>
                        </tr>
                        <tr ng-show="ingest.input.url">
                            <td>ingest.input.url</td>
                            <td><span title="{{ingest.input.url}}">URL</span></td>
                            <td>采集的地址。</td>
                        </tr>
                    </table>
                    <div class="accordion-group" ng-repeat="engine in [ingest.engine]">
                        <div class="accordion-heading" sc-collapse="in">
                            <a class="accordion-toggle" href="javascript:void(0)">
                                Ingest Engine, 采集引擎 <span ng-show="engine.id">id={{engine.id}}</span>
                            </a>
                        </div>
                        <div class="accordion-body collapse">
                            <div class="accordion-inner">
                                <table class="table table-striped table-hover table-bordered">
                                    <tr>
                                        <th>Key</th>
                                        <th>Value</th>
                                        <th>Description</th>
                                    </tr>
                                    <tr ng-show="engine.enabled != undefined">
                                        <td>engine.enabled</td>
                                        <td>{{engine.enabled| sc_filter_enabled}}</td>
                                        <td>是否开启转码引擎。默认: {{false| sc_filter_enabled}}。</td>
                                    </tr>
                                    <tr ng-show="engine.iformat">
                                        <td>engine.iformat</td>
                                        <td>{{engine.iformat}}</td>
                                        <td>引擎的输入格式，即"-i v"。默认: flv</td>
                                    </tr>
                                    <tr ng-show="engine.vfilter">
                                        <td>engine.vfilter</td>
                                        <td><p ng-repeat="(fk, fv) in engine.vfilter">-{{fk}} {{fv}}</p></td>
                                        <td>引擎的视频参数，譬如滤镜，在"-i"和"-vcodec"之间的参数。</td>
                                    </tr>
                                    <tr ng-show="engine.vcodec">
                                        <td>engine.vcodec</td>
                                        <td>{{engine.vcodec}}</td>
                                        <td>引擎的视频编码器，即"-vcodec v"，可以是libx264,copy,vn</td>
                                    </tr>
                                    <tr ng-show="engine.vbitrate">
                                        <td>engine.vbitrate</td>
                                        <td>{{engine.vbitrate}}</td>
                                        <td>Kbps。编码器输出的视频码率，即"-v:b v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vfps">
                                        <td>engine.vfps</td>
                                        <td>{{engine.vfps}}</td>
                                        <td>fps。编码器输出的视频帧率，即"-r v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vwidth">
                                        <td>engine.vwidth</td>
                                        <td>{{engine.vwidth}}</td>
                                        <td>px。编码器输出的视频宽度，即"-s v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vheight">
                                        <td>engine.vheight</td>
                                        <td>{{engine.vheight}}</td>
                                        <td>px。编码器输出的视频高度，即"-s v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vthreads">
                                        <td>engine.vthreads</td>
                                        <td>{{engine.vthreads}}</td>
                                        <td>编码器使用的最多线程数，即"-thread v"。默认: 1</td>
                                    </tr>
                                    <tr ng-show="engine.vprofile">
                                        <td>engine.vprofile</td>
                                        <td>{{engine.vprofile}}</td>
                                        <td>视频的编码profile，即"-profile:v v"，可以是high,main,baseline</td>
                                    </tr>
                                    <tr ng-show="engine.vpreset">
                                        <td>engine.vpreset</td>
                                        <td>{{engine.vpreset}}</td>
                                        <td>视频的编码preset，即"-preset v"，可以是medium,slow,slower,veryslow,placebo</td>
                                    </tr>
                                    <tr ng-show="engine.vparams">
                                        <td>engine.vparams</td>
                                        <td><p ng-repeat="(fk, fv) in engine.vparams">-{{fk}} {{fv}}</p></td>
                                        <td>引擎的视频转码参数，譬如264的参数，在"-vpreset"和"-acodec"之前的参数。</td>
                                    </tr>
                                    <tr ng-show="engine.acodec">
                                        <td>engine.acodec</td>
                                        <td>{{engine.acodec}}</td>
                                        <td>音频编码器，即"-acodec v"，可以是libfdk_aac,copy,an</td>
                                    </tr>
                                    <tr ng-show="engine.abitrate">
                                        <td>engine.abitrate</td>
                                        <td>{{engine.abitrate}}</td>
                                        <td>Kbps。编码器输出的音频码率，即"-b:a v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.asample_rate">
                                        <td>engine.asample_rate</td>
                                        <td>{{engine.asample_rate}}</td>
                                        <td>编码器输出的音频采样率，即"-ar v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.achannels">
                                        <td>engine.achannels</td>
                                        <td>{{engine.achannels}}</td>
                                        <td>编码器输出的音频声道，即"-ac v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.aparams">
                                        <td>engine.aparams</td>
                                        <td><p ng-repeat="(fk, fv) in engine.aparams">-{{fk}} {{fv}}</p></td>
                                        <td>引擎的音频转码参数，譬如aac的参数，在"-ac"和"-f"/"-y"之前的参数。</td>
                                    </tr>
                                    <tr ng-show="engine.oformat">
                                        <td>engine.oformat</td>
                                        <td>{{engine.oformat}}</td>
                                        <td>编码器输出的格式，可选。默认: flv</td>
                                    </tr>
                                    <tr ng-show="engine.output">
                                        <td>engine.output</td>
                                        <td><span title="{{engine.output}}">URL</span></td>
                                        <td>编码器输出的url，可以使用变量[vhost],[port],[app],[stream]<span ng-show="engine.id">,[engine]</span></td>
                                    </tr>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-repeat="transcode in vhost.transcodes">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Vhost Transcode, 转码, apply={{transcode.apply? transcode.apply:"vhost"}}
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                        </tr>
                        <tr ng-show="transcode.enabled != undefined">
                            <td>transcode.enabled</td>
                            <td>{{transcode.enabled| sc_filter_enabled}}</td>
                            <td>是否开启转码。默认: {{false| sc_filter_enabled}}。</td>
                        </tr>
                        <tr ng-show="transcode.ffmpeg">
                            <td>transcode.ffmpeg</td>
                            <td><span title="{{transcode.ffmpeg}}">{{transcode.ffmpeg}}</span></td>
                            <td>编码器的地址。</td>
                        </tr>
                    </table>
                    <div class="accordion-group" ng-repeat="engine in transcode.engines">
                        <div class="accordion-heading" sc-collapse="in">
                            <a class="accordion-toggle" href="javascript:void(0)">
                                Transcode Engine, 转码引擎 <span ng-show="engine.id">id={{engine.id}}</span>
                            </a>
                        </div>
                        <div class="accordion-body collapse">
                            <div class="accordion-inner">
                                <table class="table table-striped table-hover table-bordered">
                                    <tr>
                                        <th>Key</th>
                                        <th>Value</th>
                                        <th>Description</th>
                                    </tr>
                                    <tr ng-show="engine.enabled != undefined">
                                        <td>engine.enabled</td>
                                        <td>{{engine.enabled| sc_filter_enabled}}</td>
                                        <td>是否开启转码引擎。默认: {{false| sc_filter_enabled}}。</td>
                                    </tr>
                                    <tr ng-show="engine.iformat">
                                        <td>engine.iformat</td>
                                        <td>{{engine.iformat}}</td>
                                        <td>引擎的输入格式，即"-i v"。默认: flv</td>
                                    </tr>
                                    <tr ng-show="engine.vfilter">
                                        <td>engine.vfilter</td>
                                        <td><p ng-repeat="(fk, fv) in engine.vfilter">-{{fk}} {{fv}}</p></td>
                                        <td>引擎的视频参数，譬如滤镜，在"-i"和"-vcodec"之间的参数。</td>
                                    </tr>
                                    <tr ng-show="engine.vcodec">
                                        <td>engine.vcodec</td>
                                        <td>{{engine.vcodec}}</td>
                                        <td>引擎的视频编码器，即"-vcodec v"，可以是libx264,copy,vn</td>
                                    </tr>
                                    <tr ng-show="engine.vbitrate">
                                        <td>engine.vbitrate</td>
                                        <td>{{engine.vbitrate}}</td>
                                        <td>Kbps。编码器输出的视频码率，即"-v:b v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vfps">
                                        <td>engine.vfps</td>
                                        <td>{{engine.vfps}}</td>
                                        <td>fps。编码器输出的视频帧率，即"-r v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vwidth">
                                        <td>engine.vwidth</td>
                                        <td>{{engine.vwidth}}</td>
                                        <td>px。编码器输出的视频宽度，即"-s v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vheight">
                                        <td>engine.vheight</td>
                                        <td>{{engine.vheight}}</td>
                                        <td>px。编码器输出的视频高度，即"-s v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.vthreads">
                                        <td>engine.vthreads</td>
                                        <td>{{engine.vthreads}}</td>
                                        <td>编码器使用的最多线程数，即"-thread v"。默认: 1</td>
                                    </tr>
                                    <tr ng-show="engine.vprofile">
                                        <td>engine.vprofile</td>
                                        <td>{{engine.vprofile}}</td>
                                        <td>视频的编码profile，即"-profile:v v"，可以是high,main,baseline</td>
                                    </tr>
                                    <tr ng-show="engine.vpreset">
                                        <td>engine.vpreset</td>
                                        <td>{{engine.vpreset}}</td>
                                        <td>视频的编码preset，即"-preset v"，可以是medium,slow,slower,veryslow,placebo</td>
                                    </tr>
                                    <tr ng-show="engine.vparams">
                                        <td>engine.vparams</td>
                                        <td><p ng-repeat="(fk, fv) in engine.vparams">-{{fk}} {{fv}}</p></td>
                                        <td>引擎的视频转码参数，譬如264的参数，在"-vpreset"和"-acodec"之前的参数。</td>
                                    </tr>
                                    <tr ng-show="engine.acodec">
                                        <td>engine.acodec</td>
                                        <td>{{engine.acodec}}</td>
                                        <td>音频编码器，即"-acodec v"，可以是libfdk_aac,copy,an</td>
                                    </tr>
                                    <tr ng-show="engine.abitrate">
                                        <td>engine.abitrate</td>
                                        <td>{{engine.abitrate}}</td>
                                        <td>Kbps。编码器输出的音频码率，即"-b:a v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.asample_rate">
                                        <td>engine.asample_rate</td>
                                        <td>{{engine.asample_rate}}</td>
                                        <td>编码器输出的音频采样率，即"-ar v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.achannels">
                                        <td>engine.achannels</td>
                                        <td>{{engine.achannels}}</td>
                                        <td>编码器输出的音频声道，即"-ac v"。0表示跟随源。默认: 0</td>
                                    </tr>
                                    <tr ng-show="engine.aparams">
                                        <td>engine.aparams</td>
                                        <td><p ng-repeat="(fk, fv) in engine.aparams">-{{fk}} {{fv}}</p></td>
                                        <td>引擎的音频转码参数，譬如aac的参数，在"-ac"和"-f"/"-y"之前的参数。</td>
                                    </tr>
                                    <tr ng-show="engine.oformat">
                                        <td>engine.oformat</td>
                                        <td>{{engine.oformat}}</td>
                                        <td>编码器输出的格式，可选。默认: flv</td>
                                    </tr>
                                    <tr ng-show="engine.output">
                                        <td>engine.output</td>
                                        <td><span title="{{engine.output}}">URL</span></td>
                                        <td>编码器输出的url，可以使用变量[vhost],[port],[app],[stream]<span ng-show="engine.id">,[engine]</span></td>
                                    </tr>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>